package com.sneaker.shower.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sneaker.shower.entity.domain.message.SessionDO;
import com.sneaker.shower.entity.dto.*;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @author Hechangjian
 * @version 1.0
 * @className KefuService
 * @date 2019/12/01 1:48
 * @description
 * @program bath
 */
public interface KefuService extends IService<SessionDO> {
    String handleMsg(WxKeFuMsgDTO keFuMsgDTO);

    void sendMessage(String messageType, String content, String[] args, Integer type);

    void sendMessage(SessionDO sessionDO, String msgType, String content, String mediaId, String[] args, Integer type);

    List<SessionDTO> history(Long sysUserGuid, Integer type);

    List<MessageDTO> history(Long sessionGuid, Long startGuid, Integer type);

    List<SessionListDTO> listSession(SessionMsgReqDTO sessionMsgReqDTO);

    MessageRespDTO listMsg(SessionMsgReqDTO sessionMsgReqDTO);

    @Transactional
    String message(MessageDTO messageDTO);

    SessionDO createSession(Long userGuid, Long organizationGuid);

    Boolean change(String sessionGuid, String sysUserGuid);

    Boolean readMessage(String sessionGuid);
}
